package com.tim.third.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.GetMapping;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
 * swagger2 文档配置
 * 默认访问地址：localhost:port/contextPath/swagger-ui.html
 * https://blog.csdn.net/btt2013/article/details/116810216
 */
@Configuration
public class SwaggerDemo
{
    /**
     * 创建docket类型的对象。并使用spring容器管理。
     * docket是swagger中的全局配置对象。
     * 多个文档组，设置不同group；通过下拉选切换分组
     */
    @Bean
    public Docket docket()
    {
        Docket docket = new Docket(DocumentationType.SWAGGER_2);

        /* step，文档描述信息*/
        ApiInfo apiInfo = new ApiInfoBuilder().contact(
                // 配置swagger文档主体内容。
                new Contact(
                        "swagger2接口文档学习 - 毕涛涛", // 是文档的发布者名称
                        "https://blog.csdn.net/btt2013", // 是文档发布者的网站地址。
                        "btt2015@163.com" //文档发布者的电子邮箱
                )
        ).title("swagger框架学习帮助文档")
                .description("swagger框架学习帮助文档详细描述--swagger框架是一个用于开发RestAPI帮助文档")
                .version("1.1")
                .build();
        docket.apiInfo(apiInfo);

        /* step，扫描、过滤配置*/
        docket.select()
                // 包、注解扫描
                .apis(RequestHandlerSelectors.basePackage(""))
                .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
                // 路径过滤
                .paths(PathSelectors.regex("").negate())
            .build();


        /* step，安全配置*/


        return docket;
    }
}


